import queue
import threading


class WorkerThread(threading.Thread):
    """工作线程类，持续从任务队列中获取任务并执行"""
    def __init__(self, task_queue):
        super().__init__(daemon=True)  # 设置为守护线程
        self.task_queue = task_queue

    def run(self):
        """线程主逻辑"""
        print(f"线程 {self.name} 开始运行")
        while True:
            try:
                # 从任务队列中获取任务，超时时间为 1 秒
                task = self.task_queue.get(timeout=1)
                task.run()
                self.task_queue.task_done()
            except queue.Empty:
                # 如果队列为空，继续等待
                continue
            except Exception as e:
                print(f"线程 {self.name} 发生异常: {e}")